package com.shopping.controller.front;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shopping.commons.controller.BaseController;
import com.shopping.commons.response.MessageResp;
import com.shopping.commons.util.CommonCode;
import com.shopping.model.Address;
import com.shopping.response.UserResp;
import com.shopping.service.IAddressService;

/**
 * 地址  类的   Conroller  前台
 * @author Administrator
 *
 */
@Controller
@RequestMapping("front/address")   //指定的该controller  进入的时候用  localhost:8080/项目名/address
public class FrontAddressController extends BaseController{  
	
	@Autowired
	private IAddressService addressService;
	
	/**
	 * 增加一个 地址到   某个用户
	 * @param request
	 * @param param
	 * @return
	 */
	@RequestMapping("insert")//指定的该方法  进入的时候用  localhost:8080/项目名/address/insert
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解   普遍就是   对应  ajax 的请求    
	public MessageResp insert(HttpServletRequest request,Address param){
		MessageResp resp=new MessageResp();
		UserResp retUser=this.getUser(request);
		if(retUser==null){
			resp.setCode(CommonCode.FAIL);
			resp.setMsg("添加失败，请登录");
		}
		if(retUser.getUserid().equals(param.getUserid())){
			resp.setCode(CommonCode.FAIL);
			resp.setMsg("添加失败,请刷新页面重试");
		}
		return addressService.insert(param);
	}
	
	/**
	 * 删除 逻辑删除   
	 * @param request
	 * @param param
	 * @return
	 */
	/*resetful 接口规范  接口编码的风格*/
	@RequestMapping(value="{id}",method=RequestMethod.DELETE)//指定的该方法  进入的时候用  localhost:8080/项目名/address/insert
	@ResponseBody  ///这个是吧MessageResp转成  json 的注解
	public MessageResp delete(HttpServletRequest request,@PathVariable("id") Integer id){
//		addressService.getstr();   //这里就说明，在  接口的层面， 这个方法是  不想暴露给Contooler的
		return addressService.delete(id);
	}
	
}
